From: David Vrabel Date: Mon, 9 Jun 2014 15:41:10 +0000 (+0100) Subject: tools/libxc: add DECLARE_HYPERCALL_BUFFER_SHADOW() X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~4879 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=60572c972b8dbfbfff91c3bf0773838381c5a8c4;p=xen.git tools/libxc: add DECLARE_HYPERCALL_BUFFER_SHADOW() DECLARE_HYPERCALL_BUFFER_SHADOW() is like DECLARE_HYPERCALL_BUFFER() except it is backed by an already allocated hypercall buffer. Signed-off-by: David Vrabel Acked-by: Ian Campbell --- diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h index 400f0dfe43..b55d85728c 100644 --- a/tools/libxc/xenctrl.h +++ b/tools/libxc/xenctrl.h @@ -265,6 +265,24 @@ typedef struct xc_hypercall_buffer xc_hypercall_buffer_t; HYPERCALL_BUFFER_INIT_NO_BOUNCE \ } +/* + * Like DECLARE_HYPERCALL_BUFFER() but using an already allocated + * hypercall buffer, _hbuf. + * + * Useful when a hypercall buffer is passed to a function and access + * via the user pointer is required. + * + * See DECLARE_HYPERCALL_BUFFER_ARGUMENT() if the user pointer is not + * required. + */ +#define DECLARE_HYPERCALL_BUFFER_SHADOW(_type, _name, _hbuf) \ + _type *_name = _hbuf->hbuf; \ + xc_hypercall_buffer_t XC__HYPERCALL_BUFFER_NAME(_name) = { \ + .hbuf = (void *)-1, \ + .param_shadow = _hbuf, \ + HYPERCALL_BUFFER_INIT_NO_BOUNCE \ + } + /* * Declare the necessary data structure to allow a hypercall buffer * passed as an argument to a function to be used in the normal way.